package com.szh.cloud.api.course.repository;

import com.szh.cloud.api.course.entity.SearCourseEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 课程数据访问接口
 */
@Mapper
public interface ApiCourseDao {
    
    /**
     * 分页查询课程列表
     * @param params 查询参数
     * @return 课程列表
     */
    List<SearCourseEntity> queryCourseListByPage(Map<String, Object> params);
    
    /**
     * 查询课程总数
     * @param params 查询参数
     * @return 课程总数
     */
    int queryCourseListTotal(Map<String, Object> params);
    
    /**
     * 根据UUID查询课程
     * @param courseUuid 课程UUID
     * @return 课程信息
     */
    SearCourseEntity queryCourseByUuid(@Param("courseUuid") String courseUuid);
    
    /**
     * 添加课程
     * @param course 课程信息
     * @return 影响行数
     */
    int addCourse(SearCourseEntity course);
    
    /**
     * 更新课程
     * @param course 课程信息
     * @return 影响行数
     */
    int updateCourse(SearCourseEntity course);
    
    /**
     * 删除课程（逻辑删除，将isActive设为0）
     * @param courseUuids 课程UUID列表
     * @return 影响行数
     */
    int deleteCourse(@Param("courseUuids") List<String> courseUuids);
    
    /**
     * 根据班级UUID查询关联的课程
     * @param classUuid 班级UUID
     * @return 课程列表
     */
    List<SearCourseEntity> queryCoursesByClassUuid(@Param("classUuid") String classUuid);
}
